package com.web_bloks.project.controllers.client;

import com.web_bloks.system.client.Logger;

import com.google.gwt.user.client.ui.HTML;
import com.web_bloks.document.client.Document;
import com.web_bloks.document.client.DocumentManager;
import com.web_bloks.document.client.DocumentListener;

import com.web_bloks.document.client.Title;

/**
 * 
 * @author Jean-Lou Dupont
 *
 */
public class DocumentController 
	implements PostListener, DocumentListener {

	Title currentTitle = null;

	DocumentManager dm = null;
	
	HTML contentRegion;
	
	/*===================================================================
	 * CONFIGURATION
	 ===================================================================*/
	public void setDocumentManager(DocumentManager dm) {
		this.dm = dm;
	}
	public void setContentRegion(HTML r) {
		contentRegion = r;
	}
	/*===================================================================
	 * PostListener
	 ===================================================================*/

	public void onPostBegin() {
		
	}
	
	public void onPostCompleted( int code ) {
		
		dm.clear();

	}
	
	/*===================================================================
	 * DocumentListener
	 ===================================================================*/
	
	public void onDocumentChanging(String name, String targetRegionName) {
		//nothing
	}
	
	public boolean onDocumentChanged(Document doc) {
		
		if ( null == doc )
			return false;
		if ( doc.getState() != Document.STATE_VALID )
			return false;
		
		try {
			currentTitle = doc.getPageTitle();
		} catch(Exception e) {
			Logger.logWarn(this.getClass()+".onDocumentChanged: invalid title");
			return false;
		}

		contentRegion.setHTML( doc.getPageContent() );
		return true;
	}
	
	public void onDocumentRendered(Document doc) {
		
	}
	
}//END